﻿using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;

namespace SimpleLiteForm.Translator
{
    /// <summary>
    /// Interface for a translation service.
    /// </summary>
    public interface ITranslationService
    {
        /// <summary>
        /// Translates a string with auto source language detection.
        /// </summary>
        /// <param name="inputString">The input string to translate.</param>
        /// <param name="targetLanguage">The target language to tranlsate to.</param>
        /// <returns>The translated text or <code>UNKNOWKN_TRANSLATION</code> if not successful.</returns>
        string Translate(string inputString, CultureInfo targetLanguage);

        /// <summary>
        /// Translates a string.
        /// </summary>
        /// <param name="inputString">The input string to translate.</param>
        /// <param name="targetLanguage">The target language to tranlsate to.</param>
        /// <param name="sourceLanguage">The source language to tranlate from.</param>
        /// <returns>The translated text or <code>UNKNOWKN_TRANSLATION</code> if not successful.</returns>
        string Translate(string inputString, CultureInfo targetLanguage, CultureInfo sourceLanguage);

        /// <summary>
        /// Gets a list of the supported languages.
        /// </summary>
        /// <returns>The supported language list.</returns>
        IList<string> GetSupportedLanuages();
    }
}
